<?php
declare (strict_types = 1);

namespace app\controller\frontend;

use app\model\Category;
use app\service\ContentService;
use think\facade\Cache;

class DetailController extends BaseController
{

    /**
     * 内容详情
     * @param Category $Category
     * @return mixed
     * @throws \app\exception\ModelEmptyException
     * @throws \app\exception\ModelException
     */
    public function index(Category $Category)
    {
        $id = (int)input('id');
        $cid = (int)input('cid');
        $cateCacheKey = 'hc_detail_cate_' .$this->sellerId.'_'.$this->siteId.'_'.$this->lang.'_'. $cid ;
        $category = cache($cateCacheKey);
        if(empty($category)){
            $category = $Category->getCategory(['id' => $cid, 'seller_id' => $this->sellerId, 'website_id' => $this->siteId,'lang' => $this->lang],['module.moduleField'])['data']->toArray();
            Cache::set($cateCacheKey,$category);
        }
        $contentService = new ContentService();
        $param = [
            'cate' => $category,
            'id' => $id,
            'seller_id' => $this->sellerId,
            'website_id' => $this->siteId,
            'lang' => $this->lang
        ];
        $content = $contentService->getContentDetail($param);
        $content->hits =  $content->hits + 1;
        $content->save();
        $this->assign('hc_content',$content->toArray());
        $this->assign('current_cate',$category);
        $template = $category['detail_tpl'];
        return $this->fetch($template);
    }

}
